The present disclosure relates generally to the field of multi-core processing systems, and more particularly to workload request distribution in multiprocessing systems.
A key task of an operating system is to allocate hardware resources like processor cycles and memory to all applications. Typically, applications receive more or less equal share of resources. In certain instances, it is desirable to give few applications prioritized access to resources over others, such as to meet desired quality of service. In other instances, it is desirable to limit the resource consumed by applications, such as to avoid denial of service attacks.
General purpose operating systems meet these goals in different ways. One solution supports the concept of per-process priority and limits. Another solution groups tasks by an arbitrary attribute, such as userID, and impose limits on the resource consumed by all the tasks of a group. Managing resource allocation to a group of tasks, rather than to individual tasks, entails increased flexibility and manageability from an administrative point of view. An additional solution provides resource isolation to objects, such as volume groups, file systems, and files. Hence, resource isolation provides restrictions on use or access to objects; however, such isolation does not extend to processors.